#pragma once

#include <zenoui/BitFlag.hpp>

namespace zenoui {

enum _bitflag_MouseButton : unsigned {
    MouseNoButton = 0,
    MouseLeftButton = 1,
    MouseMiddleButton = 2,
    MouseRightButton = 4,
};
using MouseButton = BitFlag<_bitflag_MouseButton>;

enum _bitflag_KeyModifiers : unsigned {
    NoModifiers = 0,
    ModifierCtrl = 1,
    ModifierShift = 2,
    ModifierAlt = 4,
};
using KeyModifiers = BitFlag<_bitflag_KeyModifiers>;

enum _bitflag_TextAlignment : unsigned {
    TextAlignCenter = 0,
    TextAlignLeft = 1,
    TextAlignRight = 2,
    TextAlignTop = 4,
    TextAlignBottom = 8,
};
using TextAlignment = BitFlag<_bitflag_TextAlignment>;

enum ScissorMode : unsigned {
    ScissorBoth, // scissor to intersection of parent and child rect (recommended for regular widgets)
    ScissorParentOnly, // scissor to parent rect only (recommended for graphics items)
    ScissorChildOnly, // scissor to child rect only
};

enum LayoutMode : unsigned {
    HorizontalLayout,
    VerticalLayout,
    AbsoluteLayout,
};

enum SizeUnit : unsigned {
    SizeDontCare,
    SizePercentage,
    SizeStretchFactor,
    SizeInPixels,
};

}
